var fs = require('fs')
var Student = require('./student')


//Express提供了一种更好的方式
var express = require('express')

//1.创建一个路由容器
var router = express.Router()

//2.把路由都挂载到router路由容器中
router.get('/students', function (req, res) {
    //readFire的第二个参数是可选的，传入utf-8就是意思把读取的文件直接按照utf8编码转成我们能认识的字符
    //除了这样转换之外，也可以通过data.toString()的方式
    // fs.readFile('./db.json', 'utf8', function (err, data) {  
    // })
    Student.find(function (err, students) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.render('index.html', {
            fruits: [
                '苹果',
                '香蕉',
                '芒果',
                '西瓜'
            ],
            students: students
        })
    })
})

router.get('/students/new', function (req, res) {
    res.render('new.html')
})

//处理添加学生
router.post('/students/new', function (req, res) {
    //1.获取表单数据
    //2.处理
    //  将数据保存到db.json文件中用以持久化
    //3.发送响应
    // console.log(req.body)
    //先读取出来，转成对象
    //然后往对象中push数据
    //然后把对象转为字符串
    //然后把字符串再次写入文件
    new Student(req.body).save(function (err) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.redirect('/students')
    })
})

//渲染编辑学生页面
router.get('/students/edit', function (req, res) {
    //1.在客户端的列表页中处理链接问题（需要有id参数）
    //2.获取要编辑的学生的id
    //3.渲染编辑页面
    //根据id把学生信息查出来
    //使用模板引擎渲染页面
    Student.findById(req.query.id.replace(/"/g, ''), function (err, student) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.render('edit.html', {
            student: student
        })
    })
})

//处理编辑学生
router.post('/students/edit', function (req, res) {
    //1.获取表单数据  req.body
    //2.更新
    //Student.updateById()
    //3.发送响应
    Student.findByIdAndUpdate(req.body.id.replace(/"/g, ''), req.body, function (err) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.redirect('/students')
    })
})

//处理删除学生
router.get('/students/delete', function (req, res) {
    //1.获取要删除的id
    //2.根据id执行删除操作
    //3.根据操作结果发送响应数据
    // console.log(req.query.id)
    var id = req.query.id.replace(/"/g, '')
    Student.findByIdAndRemove(id, function (err) {
        if (err) {
            return res.status(500).send('Server error')
        }
        res.redirect('/students')
    })
})

//3.把router导出
module.exports = router






